Series de tiempo de Egresos para el proyecto Contaminación

2010

In [2]:
# Se importan las librerias necesarias
import pandas as pd 

# Se cargan los datos
colums = ['EGRESO', 'DIAG_INI']
dataframe = pd.read_csv('EGRESO_2010.csv', usecols=colums).dropna()
dataframe
Out[2]:
EGRESO DIAG_INI
0 19/01/2010 O829
1 16/02/2010 J189
2 23/03/2010 N814
3 17/04/2010 O759
4 22/05/2010 K359
... ... ...
2634334 21/07/2010 O064
2634335 21/05/2010 S822
2634336 23/03/2010 K802
2634337 17/08/2010 O809
2634338 21/12/2010 C629

2634339 rows × 2 columns

In [12]:
# Se importan las librerias necesarias
from epiweeks import Week, date

# Se convierten los string a objetos datetime en 'dataframe'
strfdtoriginal = '%d/%m/%Y'
dataframe['EGRESO'] = pd.to_datetime(dataframe['EGRESO'], format=strfdtoriginal)

# Se agrega una columna con los numeros de semana
dataframe['sem'] = ''
nrows = len(dataframe.index)
for i in range(nrows):
    dfday = dataframe['EGRESO'][i]
    mydate = date(dfday.year, dfday.month, dfday.day)
    numberweek = Week.fromdate(mydate)
    dataframe['sem'][i] = numberweek.week
    
dataframe
Out[12]:
EGRESO DIAG_INI sem
0 2010-01-19 O829 3
1 2010-02-16 J189 7
2 2010-03-23 N814 12
3 2010-04-17 O759 15
4 2010-05-22 K359 20
... ... ... ...
2634334 2010-07-21 O064 29
2634335 2010-05-21 S822 20
2634336 2010-03-23 K802 12
2634337 2010-08-17 O809 33
2634338 2010-12-21 C629 51

2634339 rows × 3 columns

In [21]:
# Se forma el nuevo dataframe 'semanas' con el numero de semana del año y la cantidad de egresos en cada semana
semanas = dataframe['sem'].value_counts()
semanas = semanas.sort_index()
semanas
Out[21]:
1     43463
2     48020
3     49300
4     50404
5     46716
6     50279
7     49462
8     50102
9     51123
10    52219
11    48527
12    51158
13    46652
14    48200
15    49187
16    49499
17    51348
18    48072
19    50004
20    50627
21    51101
22    51157
23    51436
24    49970
25    49757
26    49682
27    50141
28    50981
29    50164
30    50925
31    51991
32    52355
33    52240
34    53192
35    54220
36    55165
37    48947
38    54466
39    54926
40    54540
41    54019
42    54255
43    52924
44    47914
45    52907
46    50233
47    52802
48    51769
49    51864
50    51110
51    52494
52    40330
Name: sem, dtype: int64
In [22]:
# Se pasa a un nuevo dataframe
newdf = pd.DataFrame()
newdf['sem'] = semanas.index 
newdf['casos'] = ''
nr = len(newdf.index)
for i in range (nr):
    newdf['casos'][i] = int(semanas[i+1])
newdf
Out[22]:
sem casos
0 1 43463
1 2 48020
2 3 49300
3 4 50404
4 5 46716
5 6 50279
6 7 49462
7 8 50102
8 9 51123
9 10 52219
10 11 48527
11 12 51158
12 13 46652
13 14 48200
14 15 49187
15 16 49499
16 17 51348
17 18 48072
18 19 50004
19 20 50627
20 21 51101
21 22 51157
22 23 51436
23 24 49970
24 25 49757
25 26 49682
26 27 50141
27 28 50981
28 29 50164
29 30 50925
30 31 51991
31 32 52355
32 33 52240
33 34 53192
34 35 54220
35 36 55165
36 37 48947
37 38 54466
38 39 54926
39 40 54540
40 41 54019
41 42 54255
42 43 52924
43 44 47914
44 45 52907
45 46 50233
46 47 52802
47 48 51769
48 49 51864
49 50 51110
50 51 52494
51 52 40330
In [127]:
# Se importan las librerias necesarias
import matplotlib.pyplot as plt

año = '2010'
print('Egresos ' + año)
# Se establece el tamaño de la figura
plt.rcParams.update({'font.size': 20})
plt.figure(figsize=(20, 10))
# Se define que se unan los puntos en la gráfica
plt.scatter(semanas.index, newdf.casos)
# Se definen las coordenadas 'x' y 'y'
plt.plot(semanas.index, newdf.casos)
# Se coloca un título para el eje x
plt.xlabel("Semana del año " + año)
# Se coloca un título para el eje y
plt.ylabel("Egresos")
# Se guarda la figura como un archivo
plt.savefig(año + '/Egresos' + año + '.jpg', format='jpg')
# Se muestra la figura en la terminal
plt.show()
Egresos 2010
2020-10-15T14:52:41.928564 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
In [128]:
# Se crea el dataframe 'diagnosticos' con los nombre de los diferentes diagnosticos sin repeticion
diagnosticos = dataframe['DIAG_INI'].value_counts()
# Se ordena del diagnostico con mayore numero de egresos al diagnostico con menor numero de egresos
diagnosticos = diagnosticos.sort_values(ascending = False)
# Se crea el dataframe 'cie' con los nombres de los diagnosticos, los numeros de las semanas, y la cantidad de diagnosticos de dicha enfermedad en cada semana
cie = dataframe.groupby(['DIAG_INI', 'sem']).count()

# Se importa la libreria necesaria para la figura
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 20})

print('Año ' + año + '\n')
# Se inicia un contador para controlar la cantidad de graficos a generar
i = 0
ndiagnosticos = len(diagnosticos.index)
maximo = ndiagnosticos-5
# Proceso de generación de las figuras
for name in diagnosticos.index:
    if i < 25 or i >= maximo:
        y = []
        for index in semanas.index:
            try:
                y.append(cie['EGRESO'][name, index])
            except:
                y.append(0)
        print('\n' + name)
        plt.figure(figsize=(20, 5))
        plt.scatter(semanas.index, y)
        plt.plot(semanas.index, y)
        plt.xlabel("Semana del año " + año)
        plt.ylabel("Egresos")
        plt.savefig(año + '/' + name + '_' + año + '.jpg', format='jpg')
        plt.show()
    i = i+1
Año 2010


O809
2020-10-15T14:52:59.825506 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O829
2020-10-15T14:53:00.467070 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O800
2020-10-15T14:53:01.155694 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O064
2020-10-15T14:53:01.750557 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N189
2020-10-15T14:53:02.492939 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O342
2020-10-15T14:53:03.126302 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K359
2020-10-15T14:53:03.848386 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O429
2020-10-15T14:53:04.505939 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O339
2020-10-15T14:53:05.134363 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O470
2020-10-15T14:53:05.753830 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K409
2020-10-15T14:53:06.428409 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N180
2020-10-15T14:53:06.983581 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
J189
2020-10-15T14:53:07.551322 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K801
2020-10-15T14:53:08.081127 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O410
2020-10-15T14:53:08.824336 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
A09X
2020-10-15T14:53:09.458257 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
D259
2020-10-15T14:53:10.051362 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
P073
2020-10-15T14:53:10.785452 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O13X
2020-10-15T14:53:11.422815 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
E119
2020-10-15T14:53:12.180223 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O200
2020-10-15T14:53:13.051379 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K811
2020-10-15T14:53:13.739241 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K37X
2020-10-15T14:53:14.425688 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O021
2020-10-15T14:53:15.014848 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Z302
2020-10-15T14:53:15.749233 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Q779
2020-10-15T14:53:16.598855 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Q160
2020-10-15T14:53:17.319750 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
S448
2020-10-15T14:53:17.971926 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
G051
2020-10-15T14:53:18.785378 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
A660
2020-10-15T14:53:19.348604 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/

2011

In [4]:
import pandas as pd 

# Se cargan los datos
colums1 = ['EGRESO', 'DIAG_INI']
dataframe1 = pd.read_csv('EGRESO_2011.csv', usecols=colums1).dropna()
dataframe1
Out[4]:
EGRESO DIAG_INI
0 22/03/2011 T311
1 22/03/2011 K579
2 22/03/2011 L039
3 04/04/2011 K359
4 05/04/2011 J189
... ... ...
1048567 21/09/2011 I091
1048568 21/09/2011 I350
1048569 22/09/2011 I471
1048570 22/09/2011 I739
1048571 23/09/2011 I258

1048559 rows × 2 columns

In [13]:
# Se importan las librerias necesarias
from epiweeks import Week, date

# Se convierten los string a objetos datetime en 'dataframe'
strfdtoriginal1 = '%d/%m/%Y'
dataframe1['EGRESO'] = pd.to_datetime(dataframe1['EGRESO'], errors='coerce', format=strfdtoriginal1)
dataframe1 = dataframe1.dropna()
dataframe1 = dataframe1.reset_index(drop=True)

# Se agrega una columna con los numeros de semana
dataframe1['sem'] = ''
nrows1 = len(dataframe1.index)
for i in range(nrows1):
    dfday1 = dataframe1['EGRESO'][i]
    if dfday1.year == 2011:    
        mydate1 = date(dfday1.year, dfday1.month, dfday1.day)
        numberweek1 = Week.fromdate(mydate1)
        dataframe1['sem'][i] = numberweek1.week
    
dataframe1 = dataframe1.dropna()
dataframe1 = dataframe1.reset_index(drop=True)    
dataframe1
Out[13]:
EGRESO DIAG_INI sem
0 2011-03-22 T311 12
1 2011-03-22 K579 12
2 2011-03-22 L039 12
3 2011-04-04 K359 14
4 2011-04-05 J189 14
... ... ... ...
1048549 2011-09-21 I091 38
1048550 2011-09-21 I350 38
1048551 2011-09-22 I471 38
1048552 2011-09-22 I739 38
1048553 2011-09-23 I258 38

1048554 rows × 3 columns

In [48]:
# Se forma el nuevo dataframe 'semanas' con el numero de semana del año y la cantidad de egresos en cada semana
semanas1 = dataframe1['sem'].value_counts()
semanas1 = semanas1.drop('', axis = 0)
semanas1 = semanas1.sort_index()
semanas1
Out[48]:
1     17352
2     18696
3     19496
4     19507
5     19332
6     18294
7     19327
8     19752
9     19824
10    19289
11    19828
12    18756
13    19630
14    19820
15    19684
16    17260
17    18346
18    17878
19    18577
20    19349
21    19384
22    19016
23    19569
24    19636
25    19737
26    19807
27    19845
28    20238
29    20570
30    20463
31    20628
32    21214
33    21237
34    21296
35    21472
36    21765
37    20779
38    21674
39    23011
40    22644
41    22416
42    22546
43    22094
44    20010
45    22360
46    21769
47    21130
48    21236
49    20987
50    20903
51    19862
52     3091
Name: sem, dtype: int64
In [49]:
# Se pasa a un nuevo dataframe
newdf1 = pd.DataFrame()
newdf1['sem'] = semanas1.index 
newdf1['casos'] = ''
nr1 = len(newdf1.index)
for i in range (nr1):
    newdf1['casos'][i] = int(semanas1[i+1])
newdf1
Out[49]:
sem casos
0 1 17352
1 2 18696
2 3 19496
3 4 19507
4 5 19332
5 6 18294
6 7 19327
7 8 19752
8 9 19824
9 10 19289
10 11 19828
11 12 18756
12 13 19630
13 14 19820
14 15 19684
15 16 17260
16 17 18346
17 18 17878
18 19 18577
19 20 19349
20 21 19384
21 22 19016
22 23 19569
23 24 19636
24 25 19737
25 26 19807
26 27 19845
27 28 20238
28 29 20570
29 30 20463
30 31 20628
31 32 21214
32 33 21237
33 34 21296
34 35 21472
35 36 21765
36 37 20779
37 38 21674
38 39 23011
39 40 22644
40 41 22416
41 42 22546
42 43 22094
43 44 20010
44 45 22360
45 46 21769
46 47 21130
47 48 21236
48 49 20987
49 50 20903
50 51 19862
51 52 3091
In [129]:
# Se importan las librerias necesarias
import matplotlib.pyplot as plt

año1 = '2011'
print('Egresos ' + año1)
# Se establece el tamaño de la figura
plt.rcParams.update({'font.size': 20})
plt.figure(figsize=(20, 10))
# Se define que se unan los puntos en la gráfica
plt.scatter(semanas1.index, newdf1.casos)
# Se definen las coordenadas 'x' y 'y'
plt.plot(semanas1.index, newdf1.casos)
# Se coloca un título para el eje x
plt.xlabel("Semana del año " + año1)
# Se coloca un título para el eje y
plt.ylabel("Egresos")
# Se guarda la figura como un archivo
plt.savefig(año1 + '/Egresos' + año1 + '.jpg', format='jpg')
# Se muestra la figura en la terminal
plt.show()
Egresos 2011
2020-10-15T14:53:22.483935 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
In [130]:
# Se crea el dataframe 'diagnosticos' con los nombre de los diferentes diagnosticos sin repeticion
diagnosticos1 = dataframe1['DIAG_INI'].value_counts()
# Se ordena del diagnostico con mayore numero de egresos al diagnostico con menor numero de egresos
diagnosticos1 = diagnosticos1.sort_values(ascending = False)
# Se crea el dataframe 'cie' con los nombres de los diagnosticos, los numeros de las semanas, y la cantidad de diagnosticos de dicha enfermedad en cada semana
cie1 = dataframe1.groupby(['DIAG_INI', 'sem']).count()

# Se importa la libreria necesaria para la figura
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 20})

print('Año ' + año1 + '\n')
# Se inicia un contador para controlar la cantidad de graficos a generar
i1 = 0
ndiagnosticos1 = len(diagnosticos1.index)
maximo1 = ndiagnosticos1-5
# Proceso de generación de las figuras
for name1 in diagnosticos1.index:
    if i1 < 25 or i1 >= maximo1:
        y1 = []
        for index1 in semanas1.index:
            try:
                y1.append(cie1['EGRESO'][name1, index1])
            except:
                y1.append(0)
        print('\n' + name1)
        plt.figure(figsize=(20, 5))
        plt.scatter(semanas1.index, y1)
        plt.plot(semanas1.index, y1)
        plt.xlabel("Semana del año " + año1)
        plt.ylabel("Egresos")
        plt.savefig(año1 + '/' + name1 + '_' + año1 + '.jpg', format='jpg')
        plt.show()
    i1 = i1+1
Año 2011


O809
2020-10-15T14:53:38.757253 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O800
2020-10-15T14:53:39.424133 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O064
2020-10-15T14:53:40.413126 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O342
2020-10-15T14:53:41.014389 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O829
2020-10-15T14:53:41.763162 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N189
2020-10-15T14:53:42.418042 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N180
2020-10-15T14:53:42.983726 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K359
2020-10-15T14:53:43.785876 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O339
2020-10-15T14:53:44.508892 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O470
2020-10-15T14:53:45.239854 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K801
2020-10-15T14:53:45.868798 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O429
2020-10-15T14:53:46.701466 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K409
2020-10-15T14:53:47.481575 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
J189
2020-10-15T14:53:48.132803 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O13X
2020-10-15T14:53:48.751983 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O410
2020-10-15T14:53:49.313845 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
D259
2020-10-15T14:53:50.159470 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
E119
2020-10-15T14:53:50.895556 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
A09X
2020-10-15T14:53:51.660646 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O335
2020-10-15T14:53:52.854220 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Z302
2020-10-15T14:53:53.512814 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
P073
2020-10-15T14:53:54.232450 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O200
2020-10-15T14:53:54.975128 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O021
2020-10-15T14:53:55.640727 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K811
2020-10-15T14:53:56.360786 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K143
2020-10-15T14:53:57.159101 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
T406
2020-10-15T14:53:57.821695 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
A240
2020-10-15T14:53:58.524714 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O872
2020-10-15T14:53:59.077870 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Z350
2020-10-15T14:53:59.754285 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/

2012

In [5]:
import pandas as pd 

# Se cargan los datos
colums2 = ['EGRESO', 'DIAG_INI']
dataframe2 = pd.read_csv('EGRESO_2012.csv', usecols=colums2).dropna()
dataframe2
Out[5]:
EGRESO DIAG_INI
0 31/01/2012 N879
1 31/01/2012 O829
2 30/01/2012 O809
3 29/01/2012 O600
4 27/01/2012 O809
... ... ...
1048570 20/08/2012 C509
1048571 20/08/2012 C509
1048572 20/08/2012 C509
1048573 20/08/2012 C504
1048574 20/08/2012 C349

1048553 rows × 2 columns

In [14]:
# Se importan las librerias necesarias
from epiweeks import Week, date

# Se convierten los string a objetos datetime en 'dataframe'
strfdtoriginal2 = '%d/%m/%Y'
dataframe2['EGRESO'] = pd.to_datetime(dataframe2['EGRESO'], errors='coerce', format=strfdtoriginal2)
dataframe2 = dataframe2.dropna()
dataframe2 = dataframe2.reset_index(drop=True)

# Se agrega una columna con los numeros de semana
dataframe2['sem'] = ''
nrows2 = len(dataframe2.index)
for i in range(nrows2):
    dfday2 = dataframe2['EGRESO'][i]
    if dfday2.year == 2012:
        mydate2 = date(dfday2.year, dfday2.month, dfday2.day)
        numberweek2 = Week.fromdate(mydate2)
        dataframe2['sem'][i] = numberweek2.week

dataframe2 = dataframe2.dropna()
dataframe2 = dataframe2.reset_index(drop=True)    
dataframe2
Out[14]:
EGRESO DIAG_INI sem
0 2012-01-31 N879 5
1 2012-01-31 O829 5
2 2012-01-30 O809 5
3 2012-01-29 O600 5
4 2012-01-27 O809 4
... ... ... ...
1048539 2012-08-20 C509 34
1048540 2012-08-20 C509 34
1048541 2012-08-20 C509 34
1048542 2012-08-20 C504 34
1048543 2012-08-20 C349 34

1048544 rows × 3 columns

In [52]:
# Se forma el nuevo dataframe 'semanas' con el numero de semana del año y la cantidad de egresos en cada semana
semanas2 = dataframe2['sem'].value_counts()
semanas2 = semanas2.drop('', axis = 0)
semanas2 = semanas2.sort_index()
semanas2
Out[52]:
1     18779
2     21239
3     21814
4     21843
5     21599
6     20500
7     21971
8     21587
9     22496
10    22702
11    22764
12    21001
13    22828
14    20586
15    21345
16    22002
17    22369
18    21219
19    22078
20    22397
21    22780
22    22819
23    22913
24    22732
25    22251
26    19190
27    18462
28    18710
29    18718
30    18512
31    18944
32    18725
33    18393
34    18694
35    19395
36    19720
37    19381
38    18956
39    19045
40    18645
41    18980
42    18468
43    18446
44    17378
45    17753
46    18327
47    16771
48    18050
49    17672
50    17094
51    16777
52     5539
Name: sem, dtype: int64
In [53]:
# Se pasa a un nuevo dataframe
newdf2 = pd.DataFrame()
newdf2['sem'] = semanas2.index 
newdf2['casos'] = ''
nr2 = len(newdf2.index)
for i in range (nr2):
    newdf2['casos'][i] = int(semanas2[i+1])
newdf2
Out[53]:
sem casos
0 1 18779
1 2 21239
2 3 21814
3 4 21843
4 5 21599
5 6 20500
6 7 21971
7 8 21587
8 9 22496
9 10 22702
10 11 22764
11 12 21001
12 13 22828
13 14 20586
14 15 21345
15 16 22002
16 17 22369
17 18 21219
18 19 22078
19 20 22397
20 21 22780
21 22 22819
22 23 22913
23 24 22732
24 25 22251
25 26 19190
26 27 18462
27 28 18710
28 29 18718
29 30 18512
30 31 18944
31 32 18725
32 33 18393
33 34 18694
34 35 19395
35 36 19720
36 37 19381
37 38 18956
38 39 19045
39 40 18645
40 41 18980
41 42 18468
42 43 18446
43 44 17378
44 45 17753
45 46 18327
46 47 16771
47 48 18050
48 49 17672
49 50 17094
50 51 16777
51 52 5539
In [131]:
# Se importan las librerias necesarias
import matplotlib.pyplot as plt

año2 = '2012'
print('Egresos ' + año2)
# Se establece el tamaño de la figura
plt.rcParams.update({'font.size': 20})
plt.figure(figsize=(20, 10))
# Se define que se unan los puntos en la gráfica
plt.scatter(semanas2.index, newdf2.casos)
# Se definen las coordenadas 'x' y 'y'
plt.plot(semanas2.index, newdf2.casos)
# Se coloca un título para el eje x
plt.xlabel("Semana del año " + año2)
# Se coloca un título para el eje y
plt.ylabel("Egresos")
# Se guarda la figura como un archivo
plt.savefig(año2 + '/Egresos' + año2 + '.jpg', format='jpg')
# Se muestra la figura en la terminal
plt.show()
Egresos 2012
2020-10-15T14:54:04.493717 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
In [132]:
# Se crea el dataframe 'diagnosticos' con los nombre de los diferentes diagnosticos sin repeticion
diagnosticos2 = dataframe2['DIAG_INI'].value_counts()
# Se ordena del diagnostico con mayore numero de egresos al diagnostico con menor numero de egresos
diagnosticos2 = diagnosticos2.sort_values(ascending = False)
# Se crea el dataframe 'cie' con los nombres de los diagnosticos, los numeros de las semanas, y la cantidad de diagnosticos de dicha enfermedad en cada semana
cie2 = dataframe2.groupby(['DIAG_INI', 'sem']).count()

# Se importa la libreria necesaria para la figura
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 20})

print('Año ' + año2 + '\n')
# Se inicia un contador para controlar la cantidad de graficos a generar
i2 = 0
ndiagnosticos2 = len(diagnosticos2.index)
maximo2 = ndiagnosticos2-5
# Proceso de generación de las figuras
for name2 in diagnosticos2.index:
    if i2 < 25 or i2 >= maximo2:
        y2 = []
        for index2 in semanas2.index:
            try:
                y2.append(cie2['EGRESO'][name2, index2])
            except:
                y2.append(0)
        print('\n' + name2)
        plt.figure(figsize=(20, 5))
        plt.scatter(semanas2.index, y2)
        plt.plot(semanas2.index, y2)
        plt.xlabel("Semana del año " + año2)
        plt.ylabel("Egresos")
        plt.savefig(año2 + '/' + name2 + '_' + año2 + '.jpg', format='jpg')
        plt.show()
    i2 = i2+1
Año 2012


O809
2020-10-15T14:54:15.928614 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O800
2020-10-15T14:54:16.501661 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O829
2020-10-15T14:54:17.059496 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O064
2020-10-15T14:54:17.598514 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N189
2020-10-15T14:54:18.460075 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O342
2020-10-15T14:54:18.974017 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K359
2020-10-15T14:54:19.534131 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O339
2020-10-15T14:54:20.501068 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O429
2020-10-15T14:54:20.959919 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K409
2020-10-15T14:54:21.874813 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
A09X
2020-10-15T14:54:22.877151 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O470
2020-10-15T14:54:23.907444 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
J189
2020-10-15T14:54:24.758816 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O410
2020-10-15T14:54:26.078578 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
R69X
2020-10-15T14:54:27.126672 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
D259
2020-10-15T14:54:28.043065 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
P073
2020-10-15T14:54:29.099045 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K802
2020-10-15T14:54:30.065290 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K811
2020-10-15T14:54:30.653197 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O820
2020-10-15T14:54:31.451779 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
J219
2020-10-15T14:54:32.242635 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N180
2020-10-15T14:54:33.133076 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O021
2020-10-15T14:54:33.702094 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O200
2020-10-15T14:54:34.286958 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K801
2020-10-15T14:54:35.084559 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
G020
2020-10-15T14:54:35.756520 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K003
2020-10-15T14:54:36.447925 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K009
2020-10-15T14:54:37.346616 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Q434
2020-10-15T14:54:38.105036 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
T573
2020-10-15T14:54:38.896288 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/

2013

In [6]:
import pandas as pd 

# Se cargan los datos
colums3 = ['EGRESO', 'DIAG_INI']
dataframe3 = pd.read_csv('EGRESO_2013.csv', usecols=colums3).dropna()
dataframe3
Out[6]:
EGRESO DIAG_INI
0 26/12/2012 O821
1 26/12/2012 O010
2 26/12/2012 O821
3 26/12/2012 O809
4 26/12/2012 O620
... ... ...
2879308 04/08/2013 E145
2879309 03/08/2013 J459
2879310 04/08/2013 S720
2879311 05/07/2013 D443
2879312 26/08/2013 N189

2879313 rows × 2 columns

In [15]:
# Se importan las librerias necesarias
from epiweeks import Week, date

# Se convierten los string a objetos datetime en 'dataframe'
strfdtoriginal3 = '%d/%m/%Y'
dataframe3['EGRESO'] = pd.to_datetime(dataframe3['EGRESO'], errors='coerce', format=strfdtoriginal3)
dataframe3 = dataframe3.dropna()
dataframe3 = dataframe3.reset_index(drop=True)

# Se agrega una columna con los numeros de semana
dataframe3['sem'] = ''
nrows3 = len(dataframe3.index)
for i in range(nrows3):
    dfday3 = dataframe3['EGRESO'][i]
    if dfday3.year==2013:
        mydate3 = date(dfday3.year, dfday3.month, dfday3.day)
        numberweek3 = Week.fromdate(mydate3)
        dataframe3['sem'][i] = numberweek3.week

dataframe3 = dataframe3.dropna()
dataframe3 = dataframe3.reset_index(drop=True)    
dataframe3
Out[15]:
EGRESO DIAG_INI sem
0 2012-12-26 O821
1 2012-12-26 O010
2 2012-12-26 O821
3 2012-12-26 O809
4 2012-12-26 O620
... ... ... ...
2879308 2013-08-04 E145 32
2879309 2013-08-03 J459 31
2879310 2013-08-04 S720 32
2879311 2013-07-05 D443 27
2879312 2013-08-26 N189 35

2879313 rows × 3 columns

In [57]:
# Se forma el nuevo dataframe 'semanas' con el numero de semana del año y la cantidad de egresos en cada semana
semanas3 = dataframe3['sem'].value_counts()
semanas3 = semanas3.drop('', axis = 0)
semanas3 = semanas3.sort_index()
semanas3
Out[57]:
1     30917
2     51944
3     54767
4     55143
5     56515
6     53178
7     56002
8     55853
9     55571
10    56491
11    56657
12    53958
13    51466
14    52506
15    54445
16    55322
17    55199
18    51481
19    54249
20    54902
21    56010
22    55427
23    55435
24    55423
25    54589
26    54972
27    54102
28    55326
29    54767
30    55215
31    55467
32    56402
33    57405
34    57124
35    58985
36    58378
37    59142
38    55204
39    59186
40    59148
41    59384
42    58773
43    57475
44    56153
45    57378
46    57442
47    53195
48    56061
49    55459
50    54729
51    53190
52    24679
Name: sem, dtype: int64
In [58]:
# Se pasa a un nuevo dataframe
newdf3 = pd.DataFrame()
newdf3['sem'] = semanas3.index 
newdf3['casos'] = ''
nr3 = len(newdf3.index)
for i in range (nr3):
    newdf3['casos'][i] = int(semanas3[i+1])
newdf3
Out[58]:
sem casos
0 1 30917
1 2 51944
2 3 54767
3 4 55143
4 5 56515
5 6 53178
6 7 56002
7 8 55853
8 9 55571
9 10 56491
10 11 56657
11 12 53958
12 13 51466
13 14 52506
14 15 54445
15 16 55322
16 17 55199
17 18 51481
18 19 54249
19 20 54902
20 21 56010
21 22 55427
22 23 55435
23 24 55423
24 25 54589
25 26 54972
26 27 54102
27 28 55326
28 29 54767
29 30 55215
30 31 55467
31 32 56402
32 33 57405
33 34 57124
34 35 58985
35 36 58378
36 37 59142
37 38 55204
38 39 59186
39 40 59148
40 41 59384
41 42 58773
42 43 57475
43 44 56153
44 45 57378
45 46 57442
46 47 53195
47 48 56061
48 49 55459
49 50 54729
50 51 53190
51 52 24679
In [133]:
# Se importan las librerias necesarias
import matplotlib.pyplot as plt

año3 = '2013'
print('Egresos ' + año3)
# Se establece el tamaño de la figura
plt.rcParams.update({'font.size': 20})
plt.figure(figsize=(20, 10))
# Se define que se unan los puntos en la gráfica
plt.scatter(semanas3.index, newdf3.casos)
# Se definen las coordenadas 'x' y 'y'
plt.plot(semanas3.index, newdf3.casos)
# Se coloca un título para el eje x
plt.xlabel("Semana del año " + año3)
# Se coloca un título para el eje y
plt.ylabel("Egresos")
# Se guarda la figura como un archivo
plt.savefig(año3 + '/Egresos' + año3 + '.jpg', format='jpg')
# Se muestra la figura en la terminal
plt.show()
Egresos 2013
2020-10-15T14:54:58.023923 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
In [134]:
# Se crea el dataframe 'diagnosticos' con los nombre de los diferentes diagnosticos sin repeticion
diagnosticos3 = dataframe3['DIAG_INI'].value_counts()
# Se ordena del diagnostico con mayore numero de egresos al diagnostico con menor numero de egresos
diagnosticos3 = diagnosticos3.sort_values(ascending = False)
# Se crea el dataframe 'cie' con los nombres de los diagnosticos, los numeros de las semanas, y la cantidad de diagnosticos de dicha enfermedad en cada semana
cie3 = dataframe3.groupby(['DIAG_INI', 'sem']).count()

# Se importa la libreria necesaria para la figura
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 20})

print('Año ' + año3 + '\n')
# Se inicia un contador para controlar la cantidad de graficos a generar
i3 = 0
ndiagnosticos3 = len(diagnosticos3.index)
maximo3 = ndiagnosticos3-5
# Proceso de generación de las figuras
for name3 in diagnosticos3.index:
    if i3 < 25 or i3 >= maximo3:
        y3 = []
        for index3 in semanas3.index:
            try:
                y3.append(cie3['EGRESO'][name3, index3])
            except:
                y3.append(0)
        print('\n' + name3)
        plt.figure(figsize=(20, 5))
        plt.scatter(semanas3.index, y3)
        plt.plot(semanas3.index, y3)
        plt.xlabel("Semana del año " + año3)
        plt.ylabel("Egresos")
        plt.savefig(año3 + '/' + name3 + '_' + año3 + '.jpg', format='jpg')
        plt.show()
    i3 = i3+1
Año 2013


O809
2020-10-15T14:55:11.646974 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O800
2020-10-15T14:55:12.230296 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O829
2020-10-15T14:55:12.819376 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N189
2020-10-15T14:55:13.295400 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O064
2020-10-15T14:55:14.063802 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O342
2020-10-15T14:55:14.694668 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K359
2020-10-15T14:55:15.511818 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O339
2020-10-15T14:55:16.079086 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O429
2020-10-15T14:55:16.761303 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
J189
2020-10-15T14:55:17.440582 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K409
2020-10-15T14:55:17.993174 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O470
2020-10-15T14:55:18.479578 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N180
2020-10-15T14:55:19.168601 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O410
2020-10-15T14:55:19.732457 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K801
2020-10-15T14:55:20.547046 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
D259
2020-10-15T14:55:21.899114 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
R69X
2020-10-15T14:55:22.781324 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
P073
2020-10-15T14:55:23.434966 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
A09X
2020-10-15T14:55:24.159857 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K811
2020-10-15T14:55:24.828424 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
C509
2020-10-15T14:55:25.559997 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
C910
2020-10-15T14:55:26.229512 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O13X
2020-10-15T14:55:26.940017 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O200
2020-10-15T14:55:27.692472 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
E119
2020-10-15T14:55:28.394691 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
G590
2020-10-15T14:55:29.104739 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
L683
2020-10-15T14:55:29.871106 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
T593
2020-10-15T14:55:30.716964 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
M051
2020-10-15T14:55:31.320222 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Z749
2020-10-15T14:55:32.266746 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/

2014

In [7]:
import pandas as pd 

# Se cargan los datos
colums4 = ['EGRESO', 'DIAG_INI']
dataframe4 = pd.read_csv('EGRESO_2014.csv', usecols=colums4).dropna()
dataframe4
Out[7]:
EGRESO DIAG_INI
0 2014-11-20 00:00:00 P220
1 2014-09-17 00:00:00 O829
2 2014-09-10 00:00:00 O809
3 2014-09-05 00:00:00 O689
4 2014-09-04 00:00:00 O809
... ... ...
2959192 2014-10-02 00:00:00 O649
2959193 2014-11-18 00:00:00 O809
2959194 2014-12-19 00:00:00 O470
2959195 2014-01-14 00:00:00 O809
2959196 2014-02-17 00:00:00 I10X

2959197 rows × 2 columns

In [16]:
# Se importan las librerias necesarias
from epiweeks import Week, date

# Se convierten los string a objetos datetime en 'dataframe'
strfdtoriginal4 = '%Y-%m-%d %H:%M:%S'
dataframe4['EGRESO'] = pd.to_datetime(dataframe4['EGRESO'], errors='coerce', format=strfdtoriginal4)
dataframe4 = dataframe4.dropna()
dataframe4 = dataframe4.reset_index(drop=True)

# Se agrega una columna con los numeros de semana
dataframe4['sem'] = ''
nrows4 = len(dataframe4.index)
for i in range(nrows4):
    dfday4 = dataframe4['EGRESO'][i]
    if dfday4.year==2014:
        mydate4 = date(dfday4.year, dfday4.month, dfday4.day)
        numberweek4 = Week.fromdate(mydate4)
        dataframe4['sem'][i] = numberweek4.week
    
dataframe4 = dataframe4.dropna()
dataframe4 = dataframe4.reset_index(drop=True)    
dataframe4
Out[16]:
EGRESO DIAG_INI sem
0 2014-11-20 P220 47
1 2014-09-17 O829 38
2 2014-09-10 O809 37
3 2014-09-05 O689 36
4 2014-09-04 O809 36
... ... ... ...
2959192 2014-10-02 O649 40
2959193 2014-11-18 O809 47
2959194 2014-12-19 O470 51
2959195 2014-01-14 O809 3
2959196 2014-02-17 I10X 8

2959197 rows × 3 columns

In [61]:
# Se forma el nuevo dataframe 'semanas' con el numero de semana del año y la cantidad de egresos en cada semana
semanas4 = dataframe4['sem'].value_counts()
semanas4 = semanas4.drop('', axis = 0)
semanas4 = semanas4.sort_index()
semanas4
Out[61]:
1     23312
2     51774
3     55426
4     55220
5     57112
6     53354
7     55606
8     56075
9     56113
10    56754
11    57918
12    54352
13    58534
14    57541
15    57472
16    51809
17    53967
18    53470
19    52428
20    56835
21    56361
22    58079
23    58118
24    57917
25    57070
26    57280
27    56855
28    57669
29    58157
30    57816
31    57907
32    57712
33    57097
34    57984
35    60024
36    60197
37    61139
38    56277
39    60859
40    61418
41    61557
42    59699
43    58636
44    59131
45    57958
46    59866
47    54846
48    59227
49    57866
50    57841
51    56454
52    34577
Name: sem, dtype: int64
In [69]:
# Se pasa a un nuevo dataframe
newdf4 = pd.DataFrame()
newdf4['sem'] = semanas4.index 
newdf4['casos'] = ''
nr4 = len(newdf4.index)
for i in range (nr4):
    newdf4['casos'][i] = int(semanas4[i+1])
newdf4
Out[69]:
sem casos
0 1 23312
1 2 51774
2 3 55426
3 4 55220
4 5 57112
5 6 53354
6 7 55606
7 8 56075
8 9 56113
9 10 56754
10 11 57918
11 12 54352
12 13 58534
13 14 57541
14 15 57472
15 16 51809
16 17 53967
17 18 53470
18 19 52428
19 20 56835
20 21 56361
21 22 58079
22 23 58118
23 24 57917
24 25 57070
25 26 57280
26 27 56855
27 28 57669
28 29 58157
29 30 57816
30 31 57907
31 32 57712
32 33 57097
33 34 57984
34 35 60024
35 36 60197
36 37 61139
37 38 56277
38 39 60859
39 40 61418
40 41 61557
41 42 59699
42 43 58636
43 44 59131
44 45 57958
45 46 59866
46 47 54846
47 48 59227
48 49 57866
49 50 57841
50 51 56454
51 52 34577
In [135]:
# Se importan las librerias necesarias
import matplotlib.pyplot as plt

año4 = '2014'
print('Egresos ' + año4)
# Se establece el tamaño de la figura
plt.rcParams.update({'font.size': 20})
plt.figure(figsize=(20, 10))
# Se define que se unan los puntos en la gráfica
plt.scatter(semanas4.index, newdf4.casos)
# Se definen las coordenadas 'x' y 'y'
plt.plot(semanas4.index, newdf4.casos)
# Se coloca un título para el eje x
plt.xlabel("Semana del año " + año4)
# Se coloca un título para el eje y
plt.ylabel("Egresos")
# Se guarda la figura como un archivo
plt.savefig(año4 + '/Egresos' + año4 + '.jpg', format='jpg')
# Se muestra la figura en la terminal
plt.show()
Egresos 2014
2020-10-15T14:55:40.236141 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
In [136]:
# Se crea el dataframe 'diagnosticos' con los nombre de los diferentes diagnosticos sin repeticion
diagnosticos4 = dataframe4['DIAG_INI'].value_counts()
# Se ordena del diagnostico con mayore numero de egresos al diagnostico con menor numero de egresos
diagnosticos4 = diagnosticos4.sort_values(ascending = False)
# Se crea el dataframe 'cie' con los nombres de los diagnosticos, los numeros de las semanas, y la cantidad de diagnosticos de dicha enfermedad en cada semana
cie4 = dataframe4.groupby(['DIAG_INI', 'sem']).count()

# Se importa la libreria necesaria para la figura
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 20})

print('Año ' + año4 + '\n')
# Se inicia un contador para controlar la cantidad de graficos a generar
i4 = 0
ndiagnosticos4 = len(diagnosticos4.index)
maximo4 = ndiagnosticos4-5
# Proceso de generación de las figuras
for name4 in diagnosticos4.index:
    if i4 < 25 or i4 >= maximo4:
        y4 = []
        for index4 in semanas4.index:
            try:
                y4.append(cie4['EGRESO'][name4, index4])
            except:
                y4.append(0)
        print('\n' + name4)
        plt.figure(figsize=(20, 5))
        plt.scatter(semanas4.index, y4)
        plt.plot(semanas4.index, y4)
        plt.xlabel("Semana del año " + año4)
        plt.ylabel("Egresos")
        plt.savefig(año4 + '/' + name4 + '_' + año4 + '.jpg', format='jpg')
        plt.show()
    i4 = i4+1
Año 2014


O809
2020-10-15T14:55:54.228605 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O800
2020-10-15T14:55:54.907597 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N189
2020-10-15T14:55:55.604892 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O829
2020-10-15T14:55:56.205843 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O064
2020-10-15T14:55:56.885971 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O342
2020-10-15T14:55:57.517299 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N185
2020-10-15T14:55:58.154389 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K358
2020-10-15T14:55:58.793762 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O429
2020-10-15T14:55:59.580919 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O339
2020-10-15T14:56:00.359659 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
J189
2020-10-15T14:56:01.003953 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K409
2020-10-15T14:56:01.664068 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O470
2020-10-15T14:56:02.387934 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O410
2020-10-15T14:56:03.042642 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K801
2020-10-15T14:56:03.931217 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
C509
2020-10-15T14:56:04.505970 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
D259
2020-10-15T14:56:05.269863 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Z491
2020-10-15T14:56:06.091129 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K37X
2020-10-15T14:56:06.764660 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K811
2020-10-15T14:56:07.471697 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
C910
2020-10-15T14:56:08.085405 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
P073
2020-10-15T14:56:08.780218 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
R69X
2020-10-15T14:56:09.371268 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O13X
2020-10-15T14:56:10.190684 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
E119
2020-10-15T14:56:10.902487 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Q978
2020-10-15T14:56:11.823254 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
E770
2020-10-15T14:56:12.371131 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
T690
2020-10-15T14:56:13.124627 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
C674
2020-10-15T14:56:13.747221 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Z749
2020-10-15T14:56:14.390737 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/

2015

In [8]:
import pandas as pd 

# Se cargan los datos
colums5 = ['EGRESO', 'DIAG_INI']
dataframe5 = pd.read_csv('EGRESO_2015.csv', usecols=colums5, nrows=2500000).dropna()
dataframe5
Out[8]:
EGRESO DIAG_INI
0 2015-01-03 00:00:00 C910
1 2015-01-03 00:00:00 C845
2 2015-01-03 00:00:00 C189
3 2015-01-03 00:00:00 C509
4 2015-01-03 00:00:00 C220
... ... ...
2499995 2015-02-09 00:00:00 O410
2499996 2015-03-12 00:00:00 K811
2499997 2015-04-08 00:00:00 O809
2499998 2015-05-10 00:00:00 O054
2499999 2015-06-10 00:00:00 P240

2500000 rows × 2 columns

In [17]:
# Se importan las librerias necesarias
from epiweeks import Week, date

# Se convierten los string a objetos datetime en 'dataframe'
strfdtoriginal5 = '%Y-%m-%d %H:%M:%S'
dataframe5['EGRESO'] = pd.to_datetime(dataframe5['EGRESO'], errors='coerce', format=strfdtoriginal5)
dataframe5 = dataframe5.dropna()
dataframe5 = dataframe5.reset_index(drop=True)

# Se agrega una columna con los numeros de semana
dataframe5['sem'] = ''
nrows5 = len(dataframe5.index)
for i in range(nrows5):
    dfday5 = dataframe5['EGRESO'][i]
    if dfday5.year==2015:
        mydate5 = date(dfday5.year, dfday5.month, dfday5.day)
        numberweek5 = Week.fromdate(mydate5)
        dataframe5['sem'][i] = numberweek5.week
    
dataframe5 = dataframe5.dropna()
dataframe5 = dataframe5.reset_index(drop=True)    
dataframe5
Out[17]:
EGRESO DIAG_INI sem
0 2015-01-03 C910 53
1 2015-01-03 C845 53
2 2015-01-03 C189 53
3 2015-01-03 C509 53
4 2015-01-03 C220 53
... ... ... ...
2499995 2015-02-09 O410 6
2499996 2015-03-12 K811 10
2499997 2015-04-08 O809 14
2499998 2015-05-10 O054 19
2499999 2015-06-10 P240 23

2500000 rows × 3 columns

In [83]:
# Se forma el nuevo dataframe 'semanas' con el numero de semana del año y la cantidad de egresos en cada semana
semanas5 = dataframe5['sem'].value_counts()
semanas5 = semanas5.drop('', axis = 0)
semanas5 = semanas5.sort_index()
semanas5
Out[83]:
1     44314
2     47507
3     48330
4     49381
5     46542
6     49035
7     48313
8     49213
9     48990
10    49905
11    46079
12    49712
13    44580
14    46364
15    47680
16    48058
17    47197
18    44426
19    47733
20    48187
21    48794
22    48484
23    48844
24    47430
25    46821
26    48245
27    49058
28    48403
29    48423
30    49374
31    49081
32    49114
33    49120
34    49473
35    49948
36    50555
37    46763
38    50028
39    50709
40    51615
41    49976
42    48570
43    49416
44    46316
45    49821
46    45952
47    49110
48    49021
49    47650
50    46348
51    35336
53    14149
Name: sem, dtype: int64
In [85]:
semanas5[52] = 0
semanas5 = semanas5.sort_index()
semanas5
Out[85]:
1     44314
2     47507
3     48330
4     49381
5     46542
6     49035
7     48313
8     49213
9     48990
10    49905
11    46079
12    49712
13    44580
14    46364
15    47680
16    48058
17    47197
18    44426
19    47733
20    48187
21    48794
22    48484
23    48844
24    47430
25    46821
26    48245
27    49058
28    48403
29    48423
30    49374
31    49081
32    49114
33    49120
34    49473
35    49948
36    50555
37    46763
38    50028
39    50709
40    51615
41    49976
42    48570
43    49416
44    46316
45    49821
46    45952
47    49110
48    49021
49    47650
50    46348
51    35336
52        0
53    14149
Name: sem, dtype: int64
In [86]:
# Se pasa a un nuevo dataframe
newdf5 = pd.DataFrame()
newdf5['sem'] = semanas5.index 
newdf5['casos'] = ''
nr5 = len(newdf5.index)
for i in range (nr5):
    newdf5['casos'][i] = int(semanas5[i+1])
newdf5
Out[86]:
sem casos
0 1 44314
1 2 47507
2 3 48330
3 4 49381
4 5 46542
5 6 49035
6 7 48313
7 8 49213
8 9 48990
9 10 49905
10 11 46079
11 12 49712
12 13 44580
13 14 46364
14 15 47680
15 16 48058
16 17 47197
17 18 44426
18 19 47733
19 20 48187
20 21 48794
21 22 48484
22 23 48844
23 24 47430
24 25 46821
25 26 48245
26 27 49058
27 28 48403
28 29 48423
29 30 49374
30 31 49081
31 32 49114
32 33 49120
33 34 49473
34 35 49948
35 36 50555
36 37 46763
37 38 50028
38 39 50709
39 40 51615
40 41 49976
41 42 48570
42 43 49416
43 44 46316
44 45 49821
45 46 45952
46 47 49110
47 48 49021
48 49 47650
49 50 46348
50 51 35336
51 52 0
52 53 14149
In [137]:
# Se importan las librerias necesarias
import matplotlib.pyplot as plt

año5 = '2015'
print('Egresos ' + año5)
# Se establece el tamaño de la figura
plt.rcParams.update({'font.size': 20})
plt.figure(figsize=(20, 10))
# Se define que se unan los puntos en la gráfica
plt.scatter(semanas5.index, newdf5.casos)
# Se definen las coordenadas 'x' y 'y'
plt.plot(semanas5.index, newdf5.casos)
# Se coloca un título para el eje x
plt.xlabel("Semana del año " + año5)
# Se coloca un título para el eje y
plt.ylabel("Egresos")
# Se guarda la figura como un archivo
plt.savefig(año5 + '/Egresos' + año5 + '.jpg', format='jpg')
# Se muestra la figura en la terminal
plt.show()
Egresos 2015
2020-10-15T14:56:17.628173 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
In [138]:
# Se crea el dataframe 'diagnosticos' con los nombre de los diferentes diagnosticos sin repeticion
diagnosticos5 = dataframe5['DIAG_INI'].value_counts()
# Se ordena del diagnostico con mayore numero de egresos al diagnostico con menor numero de egresos
diagnosticos5 = diagnosticos5.sort_values(ascending = False)
# Se crea el dataframe 'cie' con los nombres de los diagnosticos, los numeros de las semanas, y la cantidad de diagnosticos de dicha enfermedad en cada semana
cie5 = dataframe5.groupby(['DIAG_INI', 'sem']).count()

# Se importa la libreria necesaria para la figura
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 20})

print('Año ' + año5 + '\n')
# Se inicia un contador para controlar la cantidad de graficos a generar
i5 = 0
ndiagnosticos5 = len(diagnosticos5.index)
maximo5 = ndiagnosticos5-5
# Proceso de generación de las figuras
for name5 in diagnosticos5.index:
    if i5 < 25 or i5 >= maximo5:
        y5 = []
        for index5 in semanas5.index:
            try:
                y5.append(cie5['EGRESO'][name5, index5])
            except:
                y5.append(0)
        print('\n' + name5)
        plt.figure(figsize=(20, 5))
        plt.scatter(semanas5.index, y5)
        plt.plot(semanas5.index, y5)
        plt.xlabel("Semana del año " + año5)
        plt.ylabel("Egresos")
        plt.savefig(año5 + '/' + name5 + '_' + año5 + '.jpg', format='jpg')
        plt.show()
    i5 = i5+1
Año 2015


O809
2020-10-15T14:56:29.956051 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N189
2020-10-15T14:56:30.445129 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O800
2020-10-15T14:56:31.030403 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O829
2020-10-15T14:56:31.646320 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O064
2020-10-15T14:56:32.351905 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O342
2020-10-15T14:56:33.011496 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K358
2020-10-15T14:56:33.604272 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Z491
2020-10-15T14:56:34.231647 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O429
2020-10-15T14:56:34.889721 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
J189
2020-10-15T14:56:35.590911 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K409
2020-10-15T14:56:36.172420 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N185
2020-10-15T14:56:37.294262 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O470
2020-10-15T14:56:37.996895 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O410
2020-10-15T14:56:38.538336 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
C509
2020-10-15T14:56:39.223327 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O339
2020-10-15T14:56:39.913870 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K811
2020-10-15T14:56:40.592135 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
D259
2020-10-15T14:56:41.186332 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K801
2020-10-15T14:56:42.085055 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
C910
2020-10-15T14:56:42.759489 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
P073
2020-10-15T14:56:43.501404 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K37X
2020-10-15T14:56:44.132863 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O13X
2020-10-15T14:56:44.717107 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
E119
2020-10-15T14:56:45.366445 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O200
2020-10-15T14:56:46.242164 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Z910
2020-10-15T14:56:46.780761 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
E070
2020-10-15T14:56:47.422978 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
C882
2020-10-15T14:56:48.243541 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
M962
2020-10-15T14:56:48.963234 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
F136
2020-10-15T14:56:49.664175 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/

2016

In [9]:
import pandas as pd 

# Se cargan los datos
colums6 = ['EGRESO', 'DIAG_INI']
dataframe6 = pd.read_csv('EGRESO_2016.csv', usecols=colums6).dropna()
dataframe6
Out[9]:
EGRESO DIAG_INI
0 12/30/2015 00:00 N185
1 12/31/2015 00:00 N185
2 12/31/2015 00:00 N185
3 01/02/2016 00:00 N185
4 01/02/2016 00:00 N185
... ... ...
1048570 08/24/2016 00:00 E115
1048571 08/17/2016 00:00 O809
1048572 08/21/2016 00:00 O809
1048573 08/22/2016 00:00 O809
1048574 08/19/2016 00:00 O809

1048574 rows × 2 columns

In [18]:
# Se importan las librerias necesarias
from epiweeks import Week, date

# Se convierten los string a objetos datetime en 'dataframe'
strfdtoriginal6 = '%m/%d/%Y %H:%M'
dataframe6['EGRESO'] = pd.to_datetime(dataframe6['EGRESO'], errors='coerce', format=strfdtoriginal6)
dataframe6 = dataframe6.dropna()
dataframe6 = dataframe6.reset_index(drop=True)

# Se agrega una columna con los numeros de semana
dataframe6['sem'] = ''
nrows6 = len(dataframe6.index)
for i in range(nrows6):
    dfday6 = dataframe6['EGRESO'][i]
    if dfday6.year==2016:
        mydate6 = date(dfday6.year, dfday6.month, dfday6.day)
        numberweek6 = Week.fromdate(mydate6)
        dataframe6['sem'][i] = numberweek6.week
    
dataframe6 = dataframe6.dropna()
dataframe6 = dataframe6.reset_index(drop=True)    
dataframe6
Out[18]:
EGRESO DIAG_INI sem
0 2015-12-30 N185
1 2015-12-31 N185
2 2015-12-31 N185
3 2016-01-02 N185 52
4 2016-01-02 N185 52
... ... ... ...
1048569 2016-08-24 E115 34
1048570 2016-08-17 O809 33
1048571 2016-08-21 O809 34
1048572 2016-08-22 O809 34
1048573 2016-08-19 O809 33

1048574 rows × 3 columns

In [89]:
# Se forma el nuevo dataframe 'semanas' con el numero de semana del año y la cantidad de egresos en cada semana
semanas6 = dataframe6['sem'].value_counts()
semanas6 = semanas6.drop('', axis = 0)
semanas6 = semanas6.sort_index()
semanas6
Out[89]:
1     17589
2     19491
3     19832
4     20191
5     19086
6     20157
7     19888
8     20511
9     20626
10    20529
11    20988
12    17365
13    19319
14    20001
15    20455
16    19735
17    20120
18    19200
19    19319
20    19965
21    20731
22    19958
23    20423
24    20138
25    19626
26    19910
27    20014
28    20014
29    20375
30    20131
31    20075
32    20357
33    20336
34    20555
35    20810
36    21251
37    20265
38    21211
39    21159
40    20842
41    20627
42    20497
43    20288
44    18737
45    19961
46    19748
47    18405
48    19142
49    18985
50    18585
51    18338
52    16945
Name: sem, dtype: int64
In [90]:
# Se pasa a un nuevo dataframe
newdf6 = pd.DataFrame()
newdf6['sem'] = semanas6.index 
newdf6['casos'] = ''
nr6 = len(newdf6.index)
for i in range (nr6):
    newdf6['casos'][i] = int(semanas6[i+1])
newdf6
Out[90]:
sem casos
0 1 17589
1 2 19491
2 3 19832
3 4 20191
4 5 19086
5 6 20157
6 7 19888
7 8 20511
8 9 20626
9 10 20529
10 11 20988
11 12 17365
12 13 19319
13 14 20001
14 15 20455
15 16 19735
16 17 20120
17 18 19200
18 19 19319
19 20 19965
20 21 20731
21 22 19958
22 23 20423
23 24 20138
24 25 19626
25 26 19910
26 27 20014
27 28 20014
28 29 20375
29 30 20131
30 31 20075
31 32 20357
32 33 20336
33 34 20555
34 35 20810
35 36 21251
36 37 20265
37 38 21211
38 39 21159
39 40 20842
40 41 20627
41 42 20497
42 43 20288
43 44 18737
44 45 19961
45 46 19748
46 47 18405
47 48 19142
48 49 18985
49 50 18585
50 51 18338
51 52 16945
In [139]:
# Se importan las librerias necesarias
import matplotlib.pyplot as plt

año6 = '2016'
print('Egresos ' + año6)
# Se establece el tamaño de la figura
plt.rcParams.update({'font.size': 20})
plt.figure(figsize=(20, 10))
# Se define que se unan los puntos en la gráfica
plt.scatter(semanas6.index, newdf6.casos)
# Se definen las coordenadas 'x' y 'y'
plt.plot(semanas6.index, newdf6.casos)
# Se coloca un título para el eje x
plt.xlabel("Semana del año " + año6)
# Se coloca un título para el eje y
plt.ylabel("Egresos")
# Se guarda la figura como un archivo
plt.savefig(año6 + '/Egresos' + año6 + '.jpg', format='jpg')
# Se muestra la figura en la terminal
plt.show()
Egresos 2016
2020-10-15T14:57:28.728898 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
In [140]:
# Se crea el dataframe 'diagnosticos' con los nombre de los diferentes diagnosticos sin repeticion
diagnosticos6 = dataframe6['DIAG_INI'].value_counts()
# Se ordena del diagnostico con mayore numero de egresos al diagnostico con menor numero de egresos
diagnosticos6 = diagnosticos6.sort_values(ascending = False)
# Se crea el dataframe 'cie' con los nombres de los diagnosticos, los numeros de las semanas, y la cantidad de diagnosticos de dicha enfermedad en cada semana
cie6 = dataframe6.groupby(['DIAG_INI', 'sem']).count()

# Se importa la libreria necesaria para la figura
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 20})

print('Año ' + año6 + '\n')
# Se inicia un contador para controlar la cantidad de graficos a generar
i6 = 0
ndiagnosticos6 = len(diagnosticos6.index)
maximo6 = ndiagnosticos6-5
# Proceso de generación de las figuras
for name6 in diagnosticos6.index:
    if i6 < 25 or i6 >= maximo6:
        y6 = []
        for index6 in semanas6.index:
            try:
                y6.append(cie6['EGRESO'][name6, index6])
            except:
                y6.append(0)
        print('\n' + name6)
        plt.figure(figsize=(20, 5))
        plt.scatter(semanas6.index, y6)
        plt.plot(semanas6.index, y6)
        plt.xlabel("Semana del año " + año6)
        plt.ylabel("Egresos")
        plt.savefig(año6 + '/' + name6 + '_' + año6 + '.jpg', format='jpg')
        plt.show()
    i6 = i6+1
Año 2016


O809
2020-10-15T14:57:40.288265 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O800
2020-10-15T14:57:40.883906 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O829
2020-10-15T14:57:41.485007 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O064
2020-10-15T14:57:41.969791 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N189
2020-10-15T14:57:42.597541 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O342
2020-10-15T14:57:43.201965 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K358
2020-10-15T14:57:43.899981 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
J189
2020-10-15T14:57:44.774098 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O429
2020-10-15T14:57:45.403080 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
C910
2020-10-15T14:57:46.106642 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O410
2020-10-15T14:57:46.803583 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K409
2020-10-15T14:57:47.355394 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O470
2020-10-15T14:57:48.043284 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K801
2020-10-15T14:57:48.704149 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O339
2020-10-15T14:57:49.268859 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N185
2020-10-15T14:57:49.772488 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
P073
2020-10-15T14:57:50.409669 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
D259
2020-10-15T14:57:50.977897 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K37X
2020-10-15T14:57:51.481750 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K811
2020-10-15T14:57:52.233068 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O021
2020-10-15T14:57:52.987015 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O13X
2020-10-15T14:57:53.801484 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
C509
2020-10-15T14:57:54.556175 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
S069
2020-10-15T14:57:55.192888 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
A099
2020-10-15T14:57:55.962256 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
A929
2020-10-15T14:57:56.700727 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K834
2020-10-15T14:57:57.310393 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
G371
2020-10-15T14:57:58.197991 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
B217
2020-10-15T14:57:58.903925 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
H938
2020-10-15T14:57:59.605592 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/

2017

In [10]:
import pandas as pd 

# Se cargan los datos
colums7 = ['EGRESO', 'DIAG_INI']
dataframe7 = pd.read_csv('EGRESO_2017.csv', sep='|', usecols=colums7, nrows=1500000).dropna()
dataframe7
Out[10]:
EGRESO DIAG_INI
0 2017-02-13 00:00:00 O809
1 2017-03-12 00:00:00 O809
2 2017-04-12 00:00:00 E86X
3 2017-05-13 00:00:00 O809
4 2017-06-14 00:00:00 I219
... ... ...
1499995 2017-08-04 00:00:00 O809
1499996 2017-08-04 00:00:00 O809
1499997 2017-08-04 00:00:00 O064
1499998 2017-08-04 00:00:00 O064
1499999 2017-08-04 00:00:00 O064

1500000 rows × 2 columns

In [19]:
# Se importan las librerias necesarias
from epiweeks import Week, date

# Se convierten los string a objetos datetime en 'dataframe'
strfdtoriginal7 = '%Y-%m-%d %H:%M:%S'
dataframe7['EGRESO'] = pd.to_datetime(dataframe7['EGRESO'], errors='coerce', format=strfdtoriginal7)
dataframe7 = dataframe7.dropna()
dataframe7 = dataframe7.reset_index(drop=True)

# Se agrega una columna con los numeros de semana
dataframe7['sem'] = ''
nrows7 = len(dataframe7.index)
for i in range(nrows7):
    dfday7 = dataframe7['EGRESO'][i]
    if dfday7.year==2017:
        mydate7 = date(dfday7.year, dfday7.month, dfday7.day)
        numberweek7 = Week.fromdate(mydate7)
        dataframe7['sem'][i] = numberweek7.week
    
dataframe7 = dataframe7.dropna()
dataframe7 = dataframe7.reset_index(drop=True)    
dataframe7
Out[19]:
EGRESO DIAG_INI sem
0 2017-02-13 O809 7
1 2017-03-12 O809 11
2 2017-04-12 E86X 15
3 2017-05-13 O809 19
4 2017-06-14 I219 24
... ... ... ...
1499995 2017-08-04 O809 31
1499996 2017-08-04 O809 31
1499997 2017-08-04 O064 31
1499998 2017-08-04 O064 31
1499999 2017-08-04 O064 31

1500000 rows × 3 columns

In [94]:
# Se forma el nuevo dataframe 'semanas' con el numero de semana del año y la cantidad de egresos en cada semana
semanas7 = dataframe7['sem'].value_counts()
# semanas7 = semanas7.drop('', axis = 0)
semanas7 = semanas7.sort_index()
semanas7
Out[94]:
1     29887
2     30924
3     32383
4     32156
5     32001
6     30230
7     32552
8     31518
9     31718
10    32476
11    31829
12    29294
13    29940
14    28557
15    26151
16    26885
17    27700
18    24600
19    26186
20    27410
21    27306
22    26797
23    27708
24    28105
25    27789
26    27284
27    27648
28    27696
29    27579
30    26725
31    27417
32    28836
33    28370
34    28507
35    29005
36    29782
37    30581
38    30630
39    29696
40    30454
41    30531
42    30724
43    30116
44    28700
45    30153
46    30218
47    26720
48    28416
49    28652
50    27196
51    25701
52    20561
Name: sem, dtype: int64
In [95]:
# Se pasa a un nuevo dataframe
newdf7 = pd.DataFrame()
newdf7['sem'] = semanas7.index 
newdf7['casos'] = ''
nr7 = len(newdf7.index)
for i in range (nr7):
    newdf7['casos'][i] = int(semanas7[i+1])
newdf7
Out[95]:
sem casos
0 1 29887
1 2 30924
2 3 32383
3 4 32156
4 5 32001
5 6 30230
6 7 32552
7 8 31518
8 9 31718
9 10 32476
10 11 31829
11 12 29294
12 13 29940
13 14 28557
14 15 26151
15 16 26885
16 17 27700
17 18 24600
18 19 26186
19 20 27410
20 21 27306
21 22 26797
22 23 27708
23 24 28105
24 25 27789
25 26 27284
26 27 27648
27 28 27696
28 29 27579
29 30 26725
30 31 27417
31 32 28836
32 33 28370
33 34 28507
34 35 29005
35 36 29782
36 37 30581
37 38 30630
38 39 29696
39 40 30454
40 41 30531
41 42 30724
42 43 30116
43 44 28700
44 45 30153
45 46 30218
46 47 26720
47 48 28416
48 49 28652
49 50 27196
50 51 25701
51 52 20561
In [141]:
# Se importan las librerias necesarias
import matplotlib.pyplot as plt

año7 = '2017'
print('Egresos ' + año7)
# Se establece el tamaño de la figura
plt.rcParams.update({'font.size': 20})
plt.figure(figsize=(20, 10))
# Se define que se unan los puntos en la gráfica
plt.scatter(semanas7.index, newdf7.casos)
# Se definen las coordenadas 'x' y 'y'
plt.plot(semanas7.index, newdf7.casos)
# Se coloca un título para el eje x
plt.xlabel("Semana del año " + año7)
# Se coloca un título para el eje y
plt.ylabel("Egresos")
# Se guarda la figura como un archivo
plt.savefig(año7 + '/Egresos' + año7 + '.jpg', format='jpg')
# Se muestra la figura en la terminal
plt.show()
Egresos 2017
2020-10-15T14:58:13.790012 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
In [142]:
# Se crea el dataframe 'diagnosticos' con los nombre de los diferentes diagnosticos sin repeticion
diagnosticos7 = dataframe7['DIAG_INI'].value_counts()
# Se ordena del diagnostico con mayore numero de egresos al diagnostico con menor numero de egresos
diagnosticos7 = diagnosticos7.sort_values(ascending = False)
# Se crea el dataframe 'cie' con los nombres de los diagnosticos, los numeros de las semanas, y la cantidad de diagnosticos de dicha enfermedad en cada semana
cie7 = dataframe7.groupby(['DIAG_INI', 'sem']).count()

# Se importa la libreria necesaria para la figura
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 20})

print('Año ' + año7 + '\n')
# Se inicia un contador para controlar la cantidad de graficos a generar
i7 = 0
ndiagnosticos7 = len(diagnosticos7.index)
maximo7 = ndiagnosticos7-5
# Proceso de generación de las figuras
for name7 in diagnosticos7.index:
    if i7 < 25 or i7 >= maximo7:
        y7 = []
        for index7 in semanas7.index:
            try:
                y7.append(cie7['EGRESO'][name7, index7])
            except:
                y7.append(0)
        print('\n' + name7)
        plt.figure(figsize=(20, 5))
        plt.scatter(semanas7.index, y7)
        plt.plot(semanas7.index, y7)
        plt.xlabel("Semana del año " + año7)
        plt.ylabel("Egresos")
        plt.savefig(año7 + '/' + name7 + '_' + año7 + '.jpg', format='jpg')
        plt.show()
    i7 = i7+1
Año 2017


O809
2020-10-15T14:58:25.172879 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N189
2020-10-15T14:58:25.687547 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O800
2020-10-15T14:58:26.345177 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O829
2020-10-15T14:58:26.949007 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O064
2020-10-15T14:58:27.377160 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N185
2020-10-15T14:58:27.892059 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
C509
2020-10-15T14:58:28.371401 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O342
2020-10-15T14:58:29.455908 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O429
2020-10-15T14:58:29.930114 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K358
2020-10-15T14:58:30.650072 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
J189
2020-10-15T14:58:31.201213 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
C910
2020-10-15T14:58:31.801484 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K409
2020-10-15T14:58:32.590975 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O410
2020-10-15T14:58:33.137248 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Z491
2020-10-15T14:58:33.724943 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O339
2020-10-15T14:58:34.382199 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O470
2020-10-15T14:58:35.101146 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
P073
2020-10-15T14:58:35.741132 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K811
2020-10-15T14:58:36.623821 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
D259
2020-10-15T14:58:37.141942 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O13X
2020-10-15T14:58:37.867661 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K37X
2020-10-15T14:58:38.496691 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Z992
2020-10-15T14:58:39.113986 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K801
2020-10-15T14:58:39.813257 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K802
2020-10-15T14:58:40.674092 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
F88X
2020-10-15T14:58:41.852309 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
T236
2020-10-15T14:58:42.900127 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
D590
2020-10-15T14:58:44.053356 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
p369
2020-10-15T14:58:45.264819 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Z749
2020-10-15T14:58:46.148133 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/

2018

In [11]:
import pandas as pd 

# Se cargan los datos
colums8 = ['EGRESO', 'DIAG_INI']
dataframe8 = pd.read_csv('EGRESO_2018.csv', usecols=colums8, nrows=1000000).dropna()
dataframe8
Out[11]:
EGRESO DIAG_INI
0 2018-03-11 00:00:00.000 Z524
1 2018-03-15 00:00:00.000 D259
2 2018-04-07 00:00:00.000 M169
3 2018-04-06 00:00:00.000 Q539
4 2018-04-19 00:00:00.000 N185
... ... ...
999995 2018-04-24 00:00:00.000 E042
999996 2018-04-24 00:00:00.000 K802
999997 2018-04-27 00:00:00.000 K603
999998 2018-04-28 00:00:00.000 R69X
999999 2018-04-26 00:00:00.000 M179

1000000 rows × 2 columns

In [20]:
# Se importan las librerias necesarias
from epiweeks import Week, date

# Se convierten los string a objetos datetime en 'dataframe'
strfdtoriginal8 = '%Y-%m-%d %H:%M:%S.000'
dataframe8['EGRESO'] = pd.to_datetime(dataframe8['EGRESO'], errors='coerce', format=strfdtoriginal8)
dataframe8 = dataframe8.dropna()
dataframe8 = dataframe8.reset_index(drop=True)

# Se agrega una columna con los numeros de semana
dataframe8['sem'] = ''
nrows8 = len(dataframe8.index)
for i in range(nrows8):
    dfday8 = dataframe8['EGRESO'][i]
    if dfday8.year==2018:
        mydate8 = date(dfday8.year, dfday8.month, dfday8.day)
        numberweek8 = Week.fromdate(mydate8)
        dataframe8['sem'][i] = numberweek8.week
    
dataframe8 = dataframe8.dropna()
dataframe8 = dataframe8.reset_index(drop=True)    
dataframe8
Out[20]:
EGRESO DIAG_INI sem
0 2018-03-11 Z524 11
1 2018-03-15 D259 11
2 2018-04-07 M169 14
3 2018-04-06 Q539 14
4 2018-04-19 N185 16
... ... ... ...
999995 2018-04-24 E042 17
999996 2018-04-24 K802 17
999997 2018-04-27 K603 17
999998 2018-04-28 R69X 17
999999 2018-04-26 M179 17

1000000 rows × 3 columns

In [99]:
# Se forma el nuevo dataframe 'semanas' con el numero de semana del año y la cantidad de egresos en cada semana
semanas8 = dataframe8['sem'].value_counts()
# semanas8 = semanas8.drop('', axis = 0)
semanas8 = semanas8.sort_index()
semanas8
Out[99]:
1     17995
2     18415
3     19382
4     19381
5     19586
6     18117
7     19495
8     19463
9     19664
10    19664
11    20214
12    19257
13    17852
14    18507
15    19268
16    19680
17    19987
18    18283
19    19175
20    19921
21    20048
22    19846
23    19602
24    19141
25    18905
26    18857
27    19181
28    19413
29    19496
30    19698
31    19275
32    19323
33    19547
34    19931
35    19964
36    20534
37    20509
38    20569
39    19922
40    20303
41    19961
42    19705
43    19605
44    18409
45    19046
46    19528
47    17902
48    18747
49    18328
50    18415
51    17870
52    15114
Name: sem, dtype: int64
In [100]:
# Se pasa a un nuevo dataframe
newdf8 = pd.DataFrame()
newdf8['sem'] = semanas8.index 
newdf8['casos'] = ''
nr8 = len(newdf8.index)
for i in range (nr8):
    newdf8['casos'][i] = int(semanas8[i+1])
newdf8
Out[100]:
sem casos
0 1 17995
1 2 18415
2 3 19382
3 4 19381
4 5 19586
5 6 18117
6 7 19495
7 8 19463
8 9 19664
9 10 19664
10 11 20214
11 12 19257
12 13 17852
13 14 18507
14 15 19268
15 16 19680
16 17 19987
17 18 18283
18 19 19175
19 20 19921
20 21 20048
21 22 19846
22 23 19602
23 24 19141
24 25 18905
25 26 18857
26 27 19181
27 28 19413
28 29 19496
29 30 19698
30 31 19275
31 32 19323
32 33 19547
33 34 19931
34 35 19964
35 36 20534
36 37 20509
37 38 20569
38 39 19922
39 40 20303
40 41 19961
41 42 19705
42 43 19605
43 44 18409
44 45 19046
45 46 19528
46 47 17902
47 48 18747
48 49 18328
49 50 18415
50 51 17870
51 52 15114
In [143]:
# Se importan las librerias necesarias
import matplotlib.pyplot as plt

año8 = '2018'
print('Egresos ' + año8)
# Se establece el tamaño de la figura
plt.rcParams.update({'font.size': 20})
plt.figure(figsize=(20, 10))
# Se define que se unan los puntos en la gráfica
plt.scatter(semanas8.index, newdf8.casos)
# Se definen las coordenadas 'x' y 'y'
plt.plot(semanas8.index, newdf8.casos)
# Se coloca un título para el eje x
plt.xlabel("Semana del año " + año8)
# Se coloca un título para el eje y
plt.ylabel("Egresos")
# Se guarda la figura como un archivo
plt.savefig(año8 + '/Egresos' + año8 + '.jpg', format='jpg')
# Se muestra la figura en la terminal
plt.show()
Egresos 2018
2020-10-15T14:59:15.933508 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
In [144]:
# Se crea el dataframe 'diagnosticos' con los nombre de los diferentes diagnosticos sin repeticion
diagnosticos8 = dataframe8['DIAG_INI'].value_counts()
# Se ordena del diagnostico con mayore numero de egresos al diagnostico con menor numero de egresos
diagnosticos8 = diagnosticos8.sort_values(ascending = False)
# Se crea el dataframe 'cie' con los nombres de los diagnosticos, los numeros de las semanas, y la cantidad de diagnosticos de dicha enfermedad en cada semana
cie8 = dataframe8.groupby(['DIAG_INI', 'sem']).count()

# Se importa la libreria necesaria para la figura
import matplotlib.pyplot as plt

plt.rcParams.update({'font.size': 20})

print('Año ' + año8 + '\n')
# Se inicia un contador para controlar la cantidad de graficos a generar
i8 = 0
ndiagnosticos8 = len(diagnosticos8.index)
maximo8 = ndiagnosticos8-5
# Proceso de generación de las figuras
for name8 in diagnosticos8.index:
    if i8 < 25 or i8 >= maximo8:
        y8 = []
        for index8 in semanas8.index:
            try:
                y8.append(cie8['EGRESO'][name8, index8])
            except:
                y8.append(0)
        print('\n' + name8)
        plt.figure(figsize=(20, 5))
        plt.scatter(semanas8.index, y8)
        plt.plot(semanas8.index, y8)
        plt.xlabel("Semana del año " + año8)
        plt.ylabel("Egresos")
        plt.savefig(año8 + '/' + name8 + '_' + año8 + '.jpg', format='jpg')
        plt.show()
    i8 = i8+1
Año 2018


O809
2020-10-15T14:59:28.689537 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O800
2020-10-15T14:59:29.194991 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O829
2020-10-15T14:59:29.765550 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N189
2020-10-15T14:59:30.535075 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O064
2020-10-15T14:59:31.271087 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
C509
2020-10-15T14:59:31.747493 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O342
2020-10-15T14:59:32.351343 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K358
2020-10-15T14:59:32.969280 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
J189
2020-10-15T14:59:33.551306 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O429
2020-10-15T14:59:34.185935 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K409
2020-10-15T14:59:34.849517 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O339
2020-10-15T14:59:35.386087 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O410
2020-10-15T14:59:36.241372 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
C910
2020-10-15T14:59:37.240751 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K801
2020-10-15T14:59:38.339547 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
D259
2020-10-15T14:59:39.608259 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O470
2020-10-15T14:59:40.343551 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K811
2020-10-15T14:59:41.182617 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
N185
2020-10-15T14:59:42.043863 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K37X
2020-10-15T14:59:42.847898 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
O13X
2020-10-15T14:59:43.465665 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
P073
2020-10-15T14:59:44.018444 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
S069
2020-10-15T14:59:44.631051 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Z390
2020-10-15T14:59:45.337753 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
K429
2020-10-15T14:59:45.947951 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Q270
2020-10-15T14:59:46.804628 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
D035
2020-10-15T14:59:47.473531 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
R412
2020-10-15T14:59:48.311841 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
T804
2020-10-15T14:59:49.038126 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
Z749
2020-10-15T14:59:49.659761 image/svg+xml Matplotlib v3.3.0, https://matplotlib.org/
In [ ]: